ML-DSA signing scheme for TUF metadata - #195
Conversation
Signed-off-by: Fredrik Skogman <kommendorkapten@github.com>
mnm678
left a comment
There was a problem hiding this comment.
I left a few minor comments, but overall I think this is a great scheme, and addresses some of the performance concerns around ML-DSA
Signed-off-by: Fredrik Skogman <kommendorkapten@github.com>
Signed-off-by: Fredrik Skogman <kommendorkapten@github.com>
Signed-off-by: Fredrik Skogman <kommendorkapten@github.com>
|
Thanks for the feedback ❤️ |
TAP 21 is in active draft (PR theupdateframework/taps#195) and adds an ml-dsa keytype with FIPS 204 parameter sets plus an application-level pre-hashing protocol so HSMs can sign large TUF metadata in pure mode. Also bump README counts from 14 to 15 toggleable TAPs.
jku
left a comment
There was a problem hiding this comment.
Looks good to me. Left one question
This is related to proposed TAP: theupdateframework/taps#195 This currently enables the key for verification and signing for easier testing: In reality we may want to leave the verify support disabled until the TAP is approved. This makes cryptography 48 a requirement * we could make this more complicated with a separate feature but I'm not going to unless someone has a good reason for it * ML-DSA support was added in 47 already but support via openssl only became available in 48 Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
This is related to proposed TAP: theupdateframework/taps#195 This currently enables the key for verification and signing for easier testing: In reality we may want to leave the verify support disabled until the TAP is approved. This makes cryptography 48 a requirement * we could make this more complicated with a separate feature but I'm not going to unless someone has a good reason for it * ML-DSA support was added in 47 already but support via openssl only became available in 48 Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
|
For testing: https://jku.github.io/pqc-test-repo/metadata/ is a live repository with ML-DSA-44 online keys that should match this proposal |
Note for anyone else who is glancing quickly at this early in the AM, only the snapshot / timestamp keys are ML-DSA-44, as I should have expected from the use of the word online. 😆 We probably should list some ballpark numbers in the TAP for the metadata size (key / sig size differences) and signing / verification time differences. |
|
Yeah, I can add that. |
TUF Metadata Size Analysis: ECDSA to ML-DSA TransitionThis uses the sigstore repository as an example (5 root/targets keys, 1 timestamp/snapshot key). Note that I did not actually create a working repository like this: this result comes from a script that calculates the sizes, script is made by an AI -- I've made point verifications but feel free to do you own homework.
For this specific case the timestamp growth is the most worrying: that is the only file that every single client downloads constantly. The table is based on these estimates: Public keys:
signatures
|
Signed-off-by: Fredrik Skogman <kommendorkapten@github.com>
Signed-off-by: Fredrik Skogman <kommendorkapten@github.com>
|
Updated with three summary tables on the expected growth from ECDSA inspired by @jku's comment. |
JustinCappos
left a comment
There was a problem hiding this comment.
As discussed in the TUF community meeting today, we think this is in sufficient state to merge as a draft / assign TAP number 21 to this.
This is related to proposed TAP: theupdateframework/taps#195 This currently enables the key for verification and signing for easier testing: In reality we may want to leave the verify support disabled until the TAP is approved. This makes cryptography 48 a requirement * we could make this more complicated with a separate feature but I'm not going to unless someone has a good reason for it * ML-DSA support was added in 47 already but support via openssl only became available in 48 Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
|
Just wanted to check in on the status of getting this merged. |
|
I'd also like to point out that we are looking for TAP editors.
#197 If dont' know if
this is blocking on waiting for review there, but more eyeballs to review
may help. (Review load is very minimal)
…On Mon, Jul 27, 2026 at 2:13 PM Hayden ***@***.***> wrote:
*Hayden-IO* left a comment (theupdateframework/taps#195)
<#195 (comment)>
Just wanted to check in on the status of getting this merged.
—
Reply to this email directly, view it on GitHub
<#195?email_source=notifications&email_token=AAGRODYRIBXKKI2R6G5HZWT5G6LVVA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKMBZGUYDKNZUGMYKM4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJLDGN5XXIZLSL5RWY2LDNM#issuecomment-5095057430>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAGROD2IRZHKPNCS2TCMLEL5G6LVVAVCNFSNUABEKJSXA33TNF2G64TZHM3DONRUGUZDQOB3JFZXG5LFHM2DGNZUHEZTINZYGOQXMAQ>
.
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS
<https://github.com/notifications/mobile/ios/AAGRODY45M5ZJTEV3CCCROL5G6LVVA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKMBZGUYDKNZUGMYKM4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJKTGN5XXIZLSL5UW64Y>
and Android
<https://github.com/notifications/mobile/android/AAGROD5UJOWZHJZCTM3DVO35G6LVVA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKMBZGUYDKNZUGMYKM4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJLTGN5XXIZLSL5QW4ZDSN5UWI>.
Download it today!
You are receiving this because you commented.Message ID:
***@***.***>
|
|
This is ready to merge as a draft. Once theupdateframework/go-tuf#758 moves forward we can also look at getting this TAP accepted. |
Wrote up a TAP on how to encode ML-DSA keys when used within TUF and added a section on pre-auth encoding as certain targets can be fairly larger, and ML-DSA operates in pure mode, that is, no pre-hashing which is the case for RSA and ECDSA.